מערכת התחברות
אז אני אשמח אם תוכלו לרשום לי את דעתכם עליה, כמה היא מאובטחת ולרשום את הדרך שבה אתם משתמשים.
ברגע שמשתמש יתחבר לאתר, בקוקי/סשן שלו ישמרו שני דברים:
אחד האיידי שלו, ושתיים מחרוזת של 32 אותיות ומספרים רנדומליים.
כל מחרוזת כזאת תישמר בטבלה חדשה במסד הנתונים שתשמור את האיידי של המשתמש + התאריך שבו נוצרה המחרוזת.
ועכשיו בכל פעם שמשתמש יכנס לעמוד באתר, זה יבדוק את האידי והמחרוזת ששמורים אצלו בסשן/קושי מול המסד.
ופעם ביום יופעל סקריפט שיבדוק מה המחרוזות שעבר זמן מסויים מאז שנוצרו וימחק אותן מהמסד.
יש לכם רעיון טוב יותר ומאובטח יותראו שזה בסדר?
8 תשובות
עם סשן אתה לא צריך לדאוג, קוקי אפשר לשנות ולכן כדאי לעשות דבר כזה.
@yonikal56, אפשר גם לגנוב סשן.
אתה יכול להשתמש גם ב IP כפרמטר להתחברות, השאלה היא עד כמה זה רלוונטי בפרויקט שלך.
למה להסתבך? :-)
אז במקרה של cookie אין יותר בעיה - אני אשמור בקוקי את האיידי של המשתמש + מחרוזת רנדומלית שתשמר במסד וכך אני אאמת מי מחובר.
אבל עדיין לא הבנתי מה לעשות במקרה של סשן... זה מספיק פשוט לשמור את האידי של המשתמש בסשן בגלל שזה במילא ימחק מהר, או שיש דרך מאובטחת יותר?
מובן שתצטרך להגן על העוגייה (חל גם לגבי הסשן, כמובן, כי הוא מוגדר באמצעות עוגייה).
אם אתה רוצה שהמשתמש יהיה מחובר רק 20 דק' ושהוא יתנתק ברגע שהוא יסגור את הכרטיסייה - תוכל להשתמש בסשן. אבל למה שתרצה את זה?
גולשים שלא יסמנו "זכור אותי" יהיו מחוברים דרך סשן, ואלה שכן דרך עוגייה.
אז במקרה של סשן, מספיק לשמור בסשן עצמו את האיידי של המשתמש, לא? (בגלל שלמשתמש אין גישה לקובץ והוא נמצא בשרת).
תודה רבה על כל העזרה :)
עקרונית כן, אבל סשן יגביל את המשתמש ל-20 דקות, ואתה ממש לא תרצה את זה ברוב המקרים. פשוט תשתמש בעוגייה שתפוג ברגע שהחלון ייסגר:
setcookie("cookieName", "cookieValue"); // the default is 0
ואל תשכח מ-HTTP Only.
גם אם המשתמש בוחר ב"זכור אותי" אני ממליץ לך לבקש מהדפדפן להשאיר את העוגייה רק לשבוע או לחודש, ולא להמון זמן.